﻿#define _CRT_SECURE_NO_WARNINGS 1

//第一个c语言程序
#include <stdio.h>

//int main()
//{
//	printf("Hello,C\n");
//	return 0;
//}

//打印
//int main()
//{
//	int n = 1;
//	printf("%d\n", n);//打印整型
//	printf("%d\n", 123);
//	printf("%c\n", 'n');//打印字符
//	printf("%s\n", "100");//打印字符串
//	printf("%c\n", 100);//打印ASCⅡ编码为100的字符 - d
//	printf("%lf\n", 3.15);//打印双精度浮点型,默认小数点后六位
//	return 0;
//}

//int main()
//{
//	int i = 0;
//	for (i = 32; i <= 127; i++)
//	{
//		printf("%c", i);
//		if (i % 16 == 15)
//			printf("\n");
//	}
//	return 0;
//}

//转义字符
//int main()
//{
	//char arr1[] = { 'a', 'b', 'c' };
	//char arr2[] = "abc";
	//printf("%s\n", arr1);//数组≠字符串，没有\0结束符
	//printf("%s\n", arr2);//字符串结尾有\0结束符
	//printf("%s\n", "abcdef");
	//printf("%s\n", "abc\ndef");//换行符\n
	//printf("%s\n", "\???");//防止？？？被解析为三字母词
	//printf("%s\n", "\'");//表字符'
	//printf("%s\n", "\"");//表字符"
	//printf("%s\n", "\\t");//防止\t被识别为转义符
	//printf("%s\n", "i\tshb\tjfsy");//表一个水平制表符的位置，4/8的倍数
	//printf("\a");//警报，使终端闪烁或发饷
	//printf("xxxx\b\ba");//回退≠删除
	//getchar();//宏，用以在键盘上读取一个字符
	//printf("dajlihsflns\r");//回车符，让光标回到行首
//	printf("%c\n", '\130'); //\ddd1-3个八进制数字
//	printf("%c\n", '\x33');//\xdd2个十六进制数字
//	return 0;
//}


//语句
//int main()
//{
//	;//空语句
//	return 0;
//}

//int main()
//{
//	int a = 1;
//	int b = 2;
//	b = a + 5;//表达式语句
//  printf("%c", b);//函数调用语句（注释的第一种方式）
//	return 0;
//}


//int main()
//{
//	int i = 0;
//	for (i = 32; i <= 127; i++)/*for循环的循环体大括号中的是复合语句（注释的第二种方式，不支持嵌套注释）*/
//	{
//		printf("%c", i);
//		if (i % 16 == 15)
//			printf("\n");
//	}
//	return 0;
//}

//#include <stdbool.h>//布尔类型的头文件
//
//int main()
//{
//	bool islike = true;//布尔类型bool、_Bool都可以用
//	if (islike)
//		printf("I like C.");
//	else
//		printf("I don't like C.");
//	return 0;
//}


//各类型的长度
//#include <stdbool.h>
//
//int main()
//{
//	int a = 10;
//	printf("%zd\n", sizeof(a));//int,sizeof的返回值单位是字节Byte，类型统一定义为size_t,
//	printf("%zd\n", sizeof a);//int
//	printf("%zd\n", sizeof(int));//int
//	printf("%zu\n", sizeof(3 + 3.5));//int+double=double
//	printf("%zu\n", sizeof 3 + 5);//(sizeof int)+5 =4+5
//	printf("%zd\n", sizeof(char));//1
//	printf("%zd\n", sizeof(_Bool));//1
//	printf("%zd\n", sizeof(short));//2
//	printf("%zd\n", sizeof(int));//4
//	printf("%zd\n", sizeof(long));//4，C语言规定long的类型长度≥int的类型长度，这里取等
//	printf("%zd\n", sizeof(long long));//8
//	printf("%zd\n", sizeof(float));//4
//	printf("%zd\n", sizeof(double));//8
//	printf("%zd\n", sizeof(long double));//8 vs上测得为8，gcc为16
//	return 0;
//}


//sizeof不计算表达式
//int main()
//{
//	short a = 2;
//	int b = 10;
//	printf("%zd\n", sizeof(a = b + 1));//int + int =int，放入short还是short，“强龙难压地头蛇”
//	printf("a=%d\n", a);//若表达式被计算则输出为a=11，实际输出还是a=2
//	return 0;
//}


//创建变量
//int a;
//char b;
//double c = 10.5;//初始化
//unsigned d = 15;//unsigned [int]

//变量的种类
//int global = 100;//全局变量
//int main()
//{
//	int local = 10;//局部变量
//	printf("%d\n", global);
//	printf("%d\n", local);
//	return 0;
//}

int global = 100;//全局变量
int main()
{
	int global = 10;//局部变量
	printf("%d\n", global);//局部和全局变量同名时，优先取局部变量
	return 0;
}